#pragma once

#include <string>

#include "monitor_info.grpc.pb.h"

namespace monitor
{
    // 抽象类
    class MonitorInter
    {
    public:
        MonitorInter() {}
        virtual ~MonitorInter() {}
        virtual void UpdateOnce(monitor::proto::MonitorInfo *monitor_info) = 0;
        virtual void Stop() = 0;
    };

    // 工厂模式
    class MonitorFactory
    {
    public:
        virtual MonitorInter* CreateMonitor() = 0;
    };
} // namespace monitor